(Towards #1823) Permit only module-inlined Kernels to be transformed#3294
(Towards #1823) Permit only module-inlined Kernels to be transformed#3294
Conversation
|
Possibly I need to store the RoutineSymbol associated with a Kernel within the Kernel class (c.f. Call.reference). That way, I can tell whether it has been module-inlined or not and can get rid of the special flag for that. |
|
Note to self: I will need to remove the EDIT: can't do this because we do still output OpenCL versions of kernels in some tests. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3294 +/- ##
==========================================
- Coverage 99.95% 99.95% -0.01%
==========================================
Files 380 381 +1
Lines 53912 53795 -117
==========================================
- Hits 53890 53773 -117
Misses 22 22 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Coverage is now all good but the LFRic extraction integration test failed :-( |
|
In lfric/eg17/full_example_extract: $ diff main_psy.f90 on_main/main_psy.f90
4d3
< use testkern_w0_kernel_mod, only : testkern_w0_code
74a74
> use testkern_w0_kernel_mod, only : some_other_var, testkern_w0_codeso it appears the |
|
This turned out to be due to the fact that I've moved the import of Kernel routines up into the Container and then the ExtractNode was falling foul of #1734 |
|
Assuming the ITs come back green this time, this is ready for review. Primarily, it adds checks such that any kernel transformations will fail unless the kernel has already been module inlined. Unfortunately, updating some of those transformations got a bit hairy (e.g. to deal with multiple calls to the same kernel). The situation will improve again once we re-name module-inlined routines (which this PR is a pre-cursor to). As part of this, I moved the location of the USE statements for kernel modules up to the container level. This affected the text checked for in quite a few tests. |
No description provided.